#include<stdio.h>
#include<math.h>
struct Fraction{
    int up,down;
};
/*
    1 down>0 
    2 fraction==0: up==0,down==1
    3 no gcd(除了1)
*/ 

// 最大公约数 a>b时，运行一步就会自动换位
// 要写在reduction的上面
int gcd(int a ,int b){
    if (b==0)return a;
    return gcd(b,a%b);
}
// 求最大公因数，别忘了加abs
Fraction reduction(Fraction a){
    if(a.down<0){
        a.down=-a.down;
        a.up = -a.up;
    }
    if(a.up==0)
        a.down =1;
    else{
        int d =  gcd(abs(a.up),abs(a.down));
        a.up /= d;    
        a.down /= d;     
    }
    return a;
}

int main(){
    Fraction a;
    a.up = 3;
    a.down = 6;
    Fraction b = reduction(a);
    printf("%d/%d\n",b.up,b.down);
}
// 输出时：分母为1则应该输出分子。